<template id='zySearch'>
    <div class="zySearch">
        <input spellcheck="false" type="text" :placeholder="zyModel.placeholder" @input="search(zyModel.searchValue)"
            v-model="zyModel.searchValue" autocomplete="off" @keyup.enter='submit' @focus="focus" @blur="blur" />
        <img :src="icon" :class="[{ isFocus: isFocus }, { isBlur: !isFocus }]" />
    </div>
</template>

<script>
// 这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）

export default {
    name: '',
    components: {
    },
    // 定义属性
    data() {
        return {
            isFocus: false,
            icon: require("@/assets/images/components/pc/Search.png")
        }
    },
    props: {
        zyModel: {
            type: Object
        }
    },
    // 计算属性，会监听依赖属性值随之变化
    computed: {
    },
    // 监控data中的数据变化
    watch: {},
    // 方法集合
    methods: {
        search(val) {
            this.$emit('search', val)
        },
        submit(e) {
            e.srcElement.blur()
            // this.$emit('submit', this.zyModel.searchValue)
        },
        focus() {
            this.isFocus = true
        },
        blur() {
            this.isFocus = false
            this.$emit('submit', this.zyModel.searchValue)

        }
    },
    // 生命周期 - 创建完成（可以访问当前this实例）
    created() {

    },
    // 生命周期 - 挂载完成（可以访问DOM元素）
    mounted() {

    },
    beforeCreate() { }, // 生命周期 - 创建之前
    beforeMount() { }, // 生命周期 - 挂载之前
    beforeUpdate() { }, // 生命周期 - 更新之前
    updated() { }, // 生命周期 - 更新之后
    beforeDestroy() { }, // 生命周期 - 销毁之前
    destroyed() { }, // 生命周期 - 销毁完成
    activated() { }, // 如果页面有keep-alive缓存功能，这个函数会触发
}
</script>

<style lang='less' scoped>
.zySearch {
    position: relative;

    input {
        width: 287px;
        height: 40px;
        border-radius: 4px;
        border: solid 1px transparent;
        background-color: rgba(168, 168, 168, 0.2);
        -webkit-appearance: none;
        background-image: none;
        box-sizing: border-box;
        color: #a8a8a8;
        display: inline-block;
        font-size: 14px;
        line-height: 40px;
        outline: none;
        padding: 0 32px 0 12px;
        transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
    }

    input:hover {
        cursor: grab;
    }

    input:focus {
        background-color: #fff;
        border-color: @tColor ;
        outline: 0;
        -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(112, 209, 130, .6);
        box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(112, 209, 130, .6);
    }

    img {
        width: 16px;
        position: absolute;
        top: 12px;
        right: 12px;
    }

    .isFocus {
        -webkit-animation: search-in 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
        animation: search-in 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
    }

    .isBlur {
        -webkit-animation: search-out 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
        animation: search-out 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
    }
}
</style>